"""
数据适配器基类
用于在不同数据模型之间进行转换
"""

from abc import ABC, abstractmethod
from typing import Dict, Any, TypeVar, Generic
from models.article_data import ArticleData

# 定义泛型类型变量，表示目标数据模型
T = TypeVar('T', bound=ArticleData)


class DataAdapter(ABC, Generic[T]):
    """
    数据适配器基类，定义了数据转换的接口
    """
    
    def __init__(self):
        """初始化数据适配器，子类可重写"""
        pass
    
    @abstractmethod
    def convert(self, source_data: Dict[str, Any]) -> T:
        """
        将源数据转换为目标数据模型
        
        Args:
            source_data: 源数据字典
            
        Returns:
            转换后的目标数据模型实例
        """
        pass